package br.com.sbc.managedBean;

import java.util.List;
import java.util.Map;

import javax.annotation.PostConstruct;
import javax.ejb.EJB;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.ViewScoped;
import javax.faces.context.FacesContext;

import br.com.sbc.ejb.entity.Assunto;
import br.com.sbc.ejb.entity.Postagem;
import br.com.sbc.sessionBean.PostagemSessionBean;
import br.com.sbc.util.SBCconstantes;

@ManagedBean
@ViewScoped
public class PostagemPorAssuntoManagedBean extends BaseManagedBean {

	private Assunto assunto;
	private Postagem postagem;
	private List<Assunto> listaAssuntos;
	private List<Postagem> listaPostagens;
	
	@EJB
	private PostagemSessionBean postagemSessionBean;
	
	public PostagemPorAssuntoManagedBean() {
		super();
	}
	
	@PostConstruct
	public void init(){
		
		if (assunto == null) {
			Map<String, Object> requestMap = FacesContext.getCurrentInstance().getExternalContext().getRequestMap();
			assunto = (Assunto) requestMap.get("assuntoSelecionado");
			if (assunto != null) {
				listaPostagens = postagensPorAssunto();
			}else {
				assunto = new Assunto();
			}
		}
		if (postagem == null) {
			postagem = new Postagem();
		}
	}
	public String listaPostagem() {
		Map<String,Object> requestMap = FacesContext.getCurrentInstance().getExternalContext().getRequestMap();
		requestMap.put("assunto",assunto);
		 listaPostagens = postagensPorAssunto();
		return "/dinamic/pages/baseDeConhecimento/postagensDoAssunto";
		
	}
	public String visualizaPerfilporMensagem(){
		return "/dinamic/pages/manterUsuario/perfil";
	}
	public void detalhaPostagem() {
		Map<String,Object> requestMap = FacesContext.getCurrentInstance().getExternalContext().getRequestMap();
		requestMap.put("postagemSelecionada",postagem);

	}
	
	public String contadorView(){
		Map<String,Object> requestMap = FacesContext.getCurrentInstance().getExternalContext().getRequestMap();
		requestMap.put("postagemSelecionada",postagem);
		long view = postagem.getViews();
		++ view;
		Postagem post = this.postagemSessionBean.consultaPostagemPorID(postagem.getIdPostagem());
		post.setViews(view);
		postagemSessionBean.alterarPostagem(post);
		
		return SBCconstantes.PAGINA_DETALHA_POSTAGEM;
	}

	public List<Postagem> postagensPorAssunto() {
		listaPostagens = postagemSessionBean.listarPostagemPorAssunto(assunto.getIdAssunto());
		return listaPostagens;
	}
	
	

//************************************************** **********************************

	public Assunto getAssunto() {
		return assunto;
	}

	public void setAssunto(Assunto assunto) {
		this.assunto = assunto;
	}

	public Postagem getPostagem() {
		return postagem;
	}

	public void setPostagem(Postagem postagem) {
		this.postagem = postagem;
	}

	public List<Assunto> getListaAssuntos() {
		return listaAssuntos;
	}

	public void setListaAssuntos(List<Assunto> listaAssuntos) {
		this.listaAssuntos = listaAssuntos;
	}

	public List<Postagem> getListaPostagens() {
		return listaPostagens;
	}

	public void setListaPostagens(List<Postagem> listaPostagens) {
		this.listaPostagens = listaPostagens;
	}
	
}
